package org.jsola.hr.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.entity.BaseDeleteDO;
import org.jsola.core.entity.Key;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;

/**
 * 工资条
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(name = "hr_salary_bill")
@Key(UUID = true)
public class SalaryBillDO extends BaseDeleteDO<String> {

    private static final long serialVersionUID = 1L;

    /**
     * 工资表ID
     */
    private String tableId;
    /**
     * 是否企业员工（0：否，1：是）
     */
    private Boolean empInCompany;
    /**
     * 员工ID
     */
    private String empId;
    /**
     * 年份
     */
    private String year;
    /**
     * 月份
     */
    private String month;
    /**
     * 应发工资
     */
    private BigDecimal salaryAmount;
    /**
     * 实发工资
     */
    private BigDecimal salaryReal;
    /**
     * 发放方式（1：微信，2：短信）
     */
    private Integer sendType;
    /**
     * 发送状态（0：未发送，1：已发送）
     */
    private Boolean sendStatus;
    /**
     * 查看状态（0：未查看，1：已查看）
     */
    private Boolean readStatus;
    /**
     * 确认状态（0：未确认，1：已确认，2：有异议）
     */
    private Boolean checkStatus;
    /**
     * 撤回状态（0：未撤回，1：已撤回）
     */
    private Boolean withdrawnStatus;
    /**
     * 发送时间
     */
    private Date sendTime;
    /**
     * 查看时间
     */
    private Date readTime;
    /**
     * 确认时间
     */
    private Date checkTime;
    /**
     * 撤回时间
     */
    private Date withdrawnTime;
    /**
     * 是否包含手机号（0：否，1：是）
     */
    private Boolean phoneStatus;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 员工姓名
     */
    private String empName;
    /**
     * 微信状态（0：未开通，1：已开通）
     */
    private Boolean wechatStatus;
    /**
     * 工号
     */
    private String empNo;
    /**
     * 部门ID
     */
    private String depId;
    /**
     * 部门名称
     */
    private String depName;
    /**
     * 岗位ID
     */
    private String positionId;
    /**
     * 岗位名称
     */
    private String positionName;
    /**
     * 考勤扣款
     */
    private BigDecimal deduction;
    /**
     * 基本工资
     */
    private BigDecimal salaryBasic;
    /**
     * 个人社保
     */
    private BigDecimal empSoc;
    /**
     * 个人公积金
     */
    private BigDecimal empPf;
    /**
     * 个人所得税
     */
    private BigDecimal empTax;
    /**
     * 公司id
     */
    private String companyId;
    /**
     * 排序
     */
    private Integer sort;


    @Transient
    private List<SalaryBillFieldsDO> salaryBillFieldsDOList;

}

